package cn.b.sky.admin.service;

import cn.b.sky.admin.model.BatchJobReport;
import cn.b.sky.admin.model.Language;
import cn.b.sky.admin.model.condition.LanguageCondition;

import java.util.List;

public interface LanguagesService {

  /**
   * 
   * <strong>Title : selectLanguageByCondition<br></strong>
   * <strong>Description : </strong>语言列表查询<br> 
   * <strong>Create on : 2016-6-6 上午11:21:30<br></strong>
   * <p>
   * @param condition
   * @return
   * List<Language>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<Language> selectLanguageByCondition(LanguageCondition condition);

  /**
   * 
   * <strong>Title : selectLanguageCountByCondition<br></strong>
   * <strong>Description : </strong>语言列表查询行数<br> 
   * <strong>Create on : 2016-6-6 下午1:09:29<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectLanguageCountByCondition(LanguageCondition condition);

  /**
   * 
   * <strong>Title : insertLanguage<br></strong>
   * <strong>Description : </strong>添加语言<br> 
   * <strong>Create on : 2016-6-6 下午3:48:54<br></strong>
   * <p>
   * @param language
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertLanguage(Language language);


  /**
   * 
   * <strong>Title : selectLanguageByCode<br></strong>
   * <strong>Description : </strong>查询语言<br> 
   * <strong>Create on : 2016-6-6 下午6:02:47<br></strong>
   * <p>
   * @param code
   * @return
   * Language
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  Language selectLanguageByCode(String code);

  /**
   * 
   * <strong>Title : updateLanguage<br></strong>
   * <strong>Description : </strong>修改语言<br> 
   * <strong>Create on : 2016-6-6 下午6:09:14<br></strong>
   * <p>
   * @param language
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateLanguage(Language language);

  /**
   * 
   * <strong>Title : deleteLanguage<br></strong>
   * <strong>Description : </strong>删除语言<br> 
   * <strong>Create on : 2016-6-7 下午4:41:50<br></strong>
   * <p>
   * @param codes
   * @return
   * BatchJobReport
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  BatchJobReport deleteLanguage(String codes);
  
  /**
   * 
   * <strong>Title : verifyLanguage<br></strong>
   * <strong>Description : </strong>验证语言是否存在<br> 
   * <strong>Create on : 2016-6-29 上午9:35:25<br></strong>
   * <p>
   * @param languageCode
   * @return
   * Language
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  Language verifyLanguage(String languageCode);

}
